package com.disdr.file;

import java.io.File;
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Date;

public class disdr {


    public static void main(String[] args) {
        final int MAXIMUM_CAPACITY = 0x40000000;
        System.out.println(MAXIMUM_CAPACITY);
        System.out.println(ceilOneBit(13));
    }

    /**
     * 向上取整（位运算，二进制，2的倍数）
     * @param i
     * @return
     */
    public static int ceilOneBit(int i) {
        //通过移位后i的值从最高位1开始都是1，
        //再右移相减得到最高位的值
        //再向左移一位
        i |= (i >>  1);
        i |= (i >>  2);
        i |= (i >>  4);
        i |= (i >>  8);
        i |= (i >> 16);

        return (i - (i >>> 1)) << 1;
    }

}
